Some embodiments described herein relate generally to switch fabric systems, and, in particular, to methods and apparatus for multi-path flow control in a multi-stage switch fabric system.
Some known switch fabric systems implement a standard-based flow control method such as the priority-based flow control protocol (i.e., IEEE 802.1Qbb) to resolve congestion problems in the switch fabric. Based on such a standard-based flow control method, when a congestion is built up in the switch fabric, an indication of the congestion (e.g., a congestion notification message) is sent from a congestion point to a source or a congestion reaction point of a data flow. The source or the congestion reaction point of the data flow then uses a multi-path mechanism to select some other paths for the data flow, and/or reduces the rate of the data flow. Because the indication of the congestion does not include information on whether the congestion point is a source or a victim of the congestion, the multi-path mechanism does not help to solve the congestion because the multi-path mechanism typically produces a head-of-line (HOL) blocking problem in the switch fabric if the congestion point is a victim of the congestion.
Accordingly, a need exists for a flow control method that can effectively use multi-path for data flows and avoid head-of-line blocking problems in resolving congestion problems in a multi-stage switch fabric system.